import shutil
from res import *

clear_screen()
title()

choose = input('\033[1;32m[1]酷狗音乐\n[2]网易云音乐\n[3]酷我音乐\033[0m\n\033[1;34m[4]返回\033[0m\n\033[1;31m请选择平台:\033[0m')
#\033[1;32m  绿色 \033[0m
#\033[1;31m  红色 \033[0m
#\033[1;34m  紫红色 \033[0m
if choose == str(1):
    filePath = 'music/酷狗音乐'
    files = os.listdir(filePath)
elif choose == str(2):
    filePath = 'music/网易云音乐'
    files = os.listdir(filePath)
elif choose == str(3):
    filePath = 'music/酷我音乐'
    files = os.listdir(filePath)
elif choose == str(4):
    os.system(f'{p()} main.py')
    clear_screen()
    exit()
else:
    print_r('选择错误,请输入序号')
    input_g('按回车键返回---->')
    clear_screen()
    os.system(f'{p()} management.py')
    exit()

clear_screen()
title()
print_b("文件列表:")
for i, file in enumerate(files, start=1):
    print_g(f"[{i}] {file}")
print_b(f"[{len(files) + 1}] 返回")
choose_2 = input_r('请选择:')

if is_valid_string(choose_2):
    if ',' in choose_2:
        choose_2 = choose_2.split(',')
        c = []
        for i in range(len(choose_2)):
            try:
                c.append(files[int(choose_2[i]) - 1])
            except (IndexError, ValueError):
                print_r("输入的序号无效！")
                time.sleep(2.5)
                os.system(f'{p()} management.py')
                exit()
    elif choose_2.isdigit():
        if int(choose_2) == len(files) + 1:
            os.system(f'{p()} management.py')
            exit()
        elif 1 <= int(choose_2) <= len(files):
            c = [files[int(choose_2) - 1]]
        else:
            print_r('输入的序号无效！')
            input_g('按回车键返回---->')
            clear_screen()
            os.system(f'{p()} management.py')
            exit()
    else:
        print_r("只可以输入数字和','号!")
        input_g('按回车键返回---->')
        clear_screen()
        os.system(f'{p()} management.py')
        exit()
else:
    print_r("只可以输入数字和','号!")
    input_g('按回车键返回---->')
    clear_screen()
    os.system(f'{p()} management.py')
    exit()

# 显示选中文件的信息
clear_screen()
title()
print_b('已选择:')
for file in c:
    file_path = os.path.join(filePath, file)
    file_size = os.path.getsize(file_path)  # 获取文件大小（字节）
    file_size_mb = file_size / (1024 * 1024)  # 转换为MB
    file_extension = os.path.splitext(file)[1]  # 获取文件扩展名
    file_mtime = os.path.getmtime(file_path)  # 获取文件最后修改时间
    file_mtime_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(file_mtime))  # 格式化时间
    
    print_g(f"文件名: {file}")
    print_g(f"大小: {file_size_mb:.2f} MB")
    print_g(f"类型: {file_extension}")
    print_g(f"最后修改时间: {file_mtime_str}")
    print_g("-" * 40)

choose3 = input('\033[1;34m[1]复制\n[2]移动\n[3]删除\033[0m\n\033[1;31m请选择:\033[0m')

if choose3 == '1':  # 复制
    target_path = input_r("请输入目标文件夹路径：")
    try:
        for file in c:
            shutil.copy(os.path.join(filePath, file), target_path)
        print_g("文件复制完成！")
        input_g('按回车键返回---->')
        clear_screen()
        os.system(f'{p()} management.py')
        exit()
    except FileNotFoundError:
        print_r('目标文件夹路径不存在!')
        input_g('按回车键返回---->')
        clear_screen()
        os.system(f'{p()} management.py')
        exit()
elif choose3 == '2':  # 移动
    target_path = input_r("请输入目标文件夹路径：")
    try:
        for file in c:
            shutil.move(os.path.join(filePath, file), target_path)
        print("文件移动完成！")
        input_g('按回车键返回---->')
        clear_screen()
        os.system(f'{p()} management.py')
        exit()
    except FileNotFoundError:
        print_r('目标文件夹路径不存在!')
        input_g('按回车键返回---->')
        clear_screen()
        os.system(f'{p()} management.py')
        exit()
elif choose3 == '3':  # 删除
    confirm = input_r("确定要删除这些文件吗？(y/n): ")
    if confirm.lower() == 'y':
        for file in c:
            os.remove(os.path.join(filePath, file))
        print_g("文件删除成功！")
        input_g('按回车键返回---->')
        clear_screen()
        os.system(f'{p()} management.py')
        exit()
    else:
        print_g("操作已取消！")
        input_g('按回车键返回---->')
        clear_screen()
        os.system(f'{p()} management.py')
        exit()
else:
    print_r("无效的选择！")
    input_g('按回车键返回---->')
    clear_screen()
    os.system(f'{p()} management.py')
    exit()